Cours - Déployer un site web simple avec nginx
Généralités
- Un serveur web/HTTP "léger"
- Écoute sur le port 80 (et generalement 443 aussi si configuré pour HTTPS)
- Sert des pages web
Intérêt dans cette formation :
- manipuler un autre service
- rendre + utile/concret le fait d'avoir un serveur
Configuration, logs
/etc/nginx/nginx.conf: conf principale/etc/nginx/sites-enabled/default: conf du site par défaut/var/log/nginx/access.log: le log d'accès aux pages/var/log/nginx/error.log: les erreurs (s'il y'en a)
/etc/nginx/sites-enabled/default
server {
listen 80 default_server;
listen [::]:80 default_server;
# [...]
}
Location blocks
location / {
alias /var/www/html/;
}
location /blog {
alias /var/www/blog/;
}
En allant sur monsite.web/blog, on accédera aux fichiers dans /var/www/blog/ (par défaut, index.html généralement)
Location blocks
location / {
alias /var/www/html/;
}
location /blog {
alias /var/www/blog/;
}
location /app {
proxy_pass http://127.0.0.1:1234/;
}
En allant sur monsite.web/app, nginx deleguera la requête à un autre programme sur la machine qui écoute sur le port 1234.
nginx -t : verifier que la conf semble correcte
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfu
(on peut ensuite faire systemctl reload nginx en toute sérénité)
Fichier de log (access.log)
88.66.22.66 - - [10/Oct/2018:20:13:23 +0000] "GET / HTTP/1.1" 403 140 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 Waterfox/56.0"
88.66.22.66 - - [10/Oct/2018:20:15:11 +0000] "GET / HTTP/1.1" 200 57 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 Waterfox/56.0"
88.66.22.66 - - [10/Oct/2018:20:15:14 +0000] "GET /test HTTP/1.1" 301 185 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 Waterfox/56.0"
88.66.22.66 - - [10/Oct/2018:20:15:15 +0000] "GET /test/ HTTP/1.1" 200 57 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 Waterfox/56.0"
Fichier d'erreurs (error.log)
(Exemple)
2018/10/10 09:06:44 [error] 28638#28638: *851331 open() "/usr/share/nginx/html/.well-known/assetlinks.json" failed (2: No such file or directory), client: 66.22.66.33, server: dismorphia.info, request: "GET /.well-known/assetlinks.json HTTP/1.1", host: "dismorphia.info"
(ACHTUNG : quand on débugge, toujours comparer l'heure actuelle du serveur à l'heure des erreurs pour vérifier quand elles ont eu lieu !)